Operator CXPQuadCamera

Operator Library: Hardware Platform

此 Operator 代表 CXP 四通道相機與 VisualApplets 之間的影像資料介面。

適用於硬體平台
mE5 marathon VCX-QP
mE5 ironman VQ8-CXP6D
mE5 ironman VQ8-CXP6B

此 Operator 在其輸出 O 上提供影像資料。此輸出始終存在。

除了這個標準輸出連接埠之外,您還可以設定一組選用的輸入與輸出。

在建立 Operator 執行個體期間會出現以下彈出對話方塊:

您可以在此指定透過 CXP 電纜進行通用輸入與輸出的選用連接埠, 以及往返相機的選用觸發連接埠。

您可以定義特定 GPI (General Purpose Inputs)、特定 GPO (General Purpose Outputs)、觸發輸入連接埠以及觸發輸出連接埠的可用性。

如果您將連接埠可用性設定為「0」(預設值), 則 Operator 中將不會出現該連接埠。 如果您將連接埠可用性設定為 1,則該特定連接埠可在 Operator 介面上使用。

此 Operator 使用 4 個類型為 CameraPort 的資源。

[重要] 修改影像寬度和影像高度

您可以將寬度和高度修改為相機特定的設定。 但是,Operator 連接埠 O 上的最大影像寬度 必須能夠被連接埠 O 的 Parallelism 整除。

請確保最大影像寬度能被連接埠 O 的 Parallelism 整除!

[重要] Parallelism 的值

連接埠 O 上的 Parallelism 至少需要設定為最小值(在參數 MinimalParallelism 中說明)。 不允許使用較小的 Parallelism 值。 最小 Parallelism 是由 VisualApplets 根據您為此 Operator 的其他參數所定義的值來計算的。 透過這種方式,始終可以接收到傳入的資料。

[重要] 虛擬像素 (Dummy Pixels)

輸出資料可能包含虛擬像素。 發生這種情況是因為 Operator 可能會轉換 Parallelism 兩次。 首先,Operator 內部會轉換為它所計算出的最小 Parallelism, 並作為參數 MinimalParallelism 中的唯讀值提供。 這會導致內部影像寬度能被 MinimalParallelism 整除, 且由於 Parallelism 轉換可能會增加額外的虛擬值。 其次,如果第一次 Parallelism 轉換所產生的填補影像寬度不是 O.Parallelism 的倍數, Operator 會將 Parallelism 轉換為 O.Parallelism, 從而可能增加更多的虛擬值。 因此,輸出資料是否包含虛擬像素取決於 MinimalParallelism 參數、 影像寬度以及 O.Parallelism。 每次 Parallelism 轉換都可能會增加虛擬像素。 額外的虛擬像素包含未定義的資料值, 並導致影像寬度偏離實際影像寬度。

範例:如果 MinimalParallelism 為 20, O.Parallelism 為 32,且傳輸的影像寬度為 128 像素, 則由於 MinimalParallelism 參數中定義的內部 Parallelism 為 20, Operator 內部會建立寬度為 140 的影像行。 對於輸出,資料向量會轉換為 Parallelism 32 (O.Parallelism),這會導致影像行寬度為 160 像素。

由於虛擬像素的存在,預期的輸出影像寬度為:

[重要] Bit Width 與格式類型

連接埠 O(影像連接埠)上的 Bit Width 取決於選定的格式類型(參數 FormatType):

  • 如果 FormatType = Gray:Bit Width 可以具有任何值(VAF_Gray 和 FL_NONE)。
  • 如果 FormatType = RGB:Bit Width 是 3 的倍數(VAF_Color und FL_RGB)
  • 如果 FormatType = RGBA:Bit Width 是 4 的倍數(VAF_Gray 和 FL_NONE)
  • 如果 FormatType = RAW:Bit Width 為 32(VAF_Gray und FL_NONE)

I/O Properties

Property Value
Operator Type M
輸入連結 - TriggerI (選填),由擷取卡透過 CXP 通道傳送至相機的觸發訊號。此連接埠通常用於觸發線形掃描相機。
- GPIx (選填),由擷取卡透過 CXP 通道傳送至相機的通用輸入 [x]。可用的選項有 GPI0、GPI1、GPI2、GPI3、GPI4、GPI5、GPI6 以及 GPI7。
輸出連結 - O,影像資料輸出
- TriggerO (選填),由相機透過 CXP 通道傳送至擷取卡的觸發訊號。
- GPOx (選填),由相機透過 CXP 通道傳送至擷取卡的通用輸出 [x]。可用的選項有 GPO0、GPO1、GPO2、GPO3、GPO4、GPO5、GPO6 以及 GPO7。

支援的 Link 格式

Link Parameter Output Link - O Input Link - TriggerI (選填) Output Link - TriggerO (選填) Input Link - GPIx (選填) Output Link - GPOx (選填)
Bit Width any 1 1 1 1
Arithmetic unsigned unsigned unsigned unsigned unsigned
Parallelism any1 1 1 1 1
Kernel Columns 1 1 1 1 1
Kernel Rows 1 1 1 1 1
Img Protocol {VALT_IMAGE2D, VALT_LINE1D} (default: VALT_IMAGE2D) VALT_SIGNAL VALT_SIGNAL VALT_SIGNAL VALT_SIGNAL
Color Format {VAF_GRAY, VAF_COLOR}

VAF_GRAY = FL_NONE

VAF_COLOR = FL_RGB

(若 Color Format 為 VAF_GRAY,則 Color Flavor 為 FL_NONE; 若 Color Format 為 VAF_COLOR,則 Color Flavor 為 FL_RGB。)

VAF_GRAY VAF_GRAY VAF_GRAY VAF_GRAY
Color Flavor {FL_NONE, FL_RGB}

VAF_GRAY = FL_NONE

VAF_COLOR = FL_RGB

(若 Color Format 為 VAF_GRAY,則 Color Flavor 為 FL_NONE; 若 Color Format 為 VAF_COLOR,則 Color Flavor 為 FL_RGB。)

FL_NONE FL_NONE FL_NONE FL_NONE
Max. Img Width 任意 (預設值:1024) 1 1 1 1
Max. Img Height 任意 (預設值:1024) 1 1 1 1

1

必須至少設為參數 MinimalParallelism 中所指定的最小值。

如果 MinimalParallelism 與 O.Paralleism 彼此不同,則 Parallelism 會被轉換兩次,並且每次都可能會加入虛擬值。 由於這些虛擬像素的緣故,預期的輸出影像寬度為:

參數

CameraID
Type 靜態寫入參數
Default
Range {-1, 0, 1, 2, 3}

CameraID 參數可定義相機運算子韌體的 CXP 主連接埠 ID,以實現自動 CXP 拓撲探索 (相機至 Applet 以及 Applet 至相機)。

透過此參數,您可以在運算子中直接指定 ID。然而,我們建議在 Resources 對話方塊中指定運算子的資源。(若要開啟 Resources 對話方塊,只需突顯相機運算子,並從 Design 功能表中選取 Resources 選單項目。) CameraID 參數將使用資源對話方塊參數自動更新至正確的主連接埠。 以下範例使用單一相機與一個雙相機:

module3 (單相機) 的 CameraID (CXP 主連接埠 ID) 為 2。 module5 (雙相機) 的 CameraID (CXP 主連接埠 ID) 為 1。

雙相機需要 2 個 CXP 相機連接埠。(四相機需要 4 個連接埠。) 只有主連接埠會反映在運算子的 CameraID 參數中。

當您定義的 CameraPort 資源超出可能數量 (最大值為 4) 時 (例如,當您執行 5 個 "CXPSingleCamera" 運算子時), 最後請求 CameraPort 資源的相機運算子 (此時所有四個可用資源皆已被佔用) 會將其 CameraID 設為 -1。 在這種情況下,設計規則檢查會回報錯誤。

參數 CameraID 的取值範圍為 {-1,0,1,2,3}。

MinimalParallelism
Type 靜態讀取參數
Default 20
Range [1 : 512]

這是一個唯讀 Property,提供輸出鏈路 O 所需的最小 Parallelism,且在不遺失資料的情況下仍能傳輸相機的最大頻寬。最小 Parallelism 是自動計算的。

該數值取決於您在 FormatMode Property 中所選取的 Pixel Format。

如果您將 FormatMode Property 定義為 dynamic Property(請參閱下方 FormatMode Property 的說明),則會計算可能出現的最小 Parallelism。

最小 Parallelism 可能會導致建立虛擬像素(dummy pixels),因為運算子可能會將 Parallelism 轉換兩次並在此過程中加入虛擬值。由於這些虛擬像素,預期的輸出影像寬度為:

Status
Type 動態讀取參數
Default
Range {0; 2^7-1}

Status Property 是一個執行階段唯讀 Property,用於反映相機運算子的目前狀態。 Bit[0] 表示 CXP 資料流封包遺失偵測。 Bit[1] 表示 CXP 資料流封包中的單位元組錯誤校正。 Bit[2] 表示 CXP 資料流封包中的多位元組錯誤偵測。 Bit[3..6] 為保留項目。 此 Property 可能會在未來版本中變更。

FormatType
Type 靜態寫入 Property
Default GRAY
Range GRAY, RGB, RGBA, RAW

在此處,您可以選取想要接收的 Pixel Format 類型(由 CXP 規格定義)。 您在此處選取的數值決定了可在 FormatMode Property 中選取的 Pixel Format。 因此,此 Property 的設定會直接影響 FormatMode Property。 另請參閱下方 FormatMode Property 的說明。

FormatMode
Type 靜態或動態(使用者定義)寫入 Property
Default Mono8
Range {Mono8, Mono10, Mono12, Mono14, Mono16, BayerGR8, BayerGR10, BayerGR12, BayerGR14, BayerGR16, BayerRG8, BayerRG10, BayerRG12, BayerRG14, BayerRG16, BayerGB8, BayerGB10, BayerGB12, BayerGB14, BayerGB16, BayerBG8, BayerBG10, BayerBG12, BayerBG14, BayerBG16, RGB8, RGB10, RGB12, RGB14, RGB16, RGBA8, RGBA10, RGBA12, RGBA14, RGBA16, Raw}

此 Property 提供屬於您在 FormatType Property 中所選格式類型的所有 Pixel Format(由 CXP 規格定義)。

您在此處可以選取的 Pixel Format 取決於 FormatType Property 的設定。 因此,您隨時只能使用完整數值範圍的預设子集。

若要取得另一組 Pixel Format,請變更 FormatType Property 的設定。 另請參閱上方 FormatType Property 的說明。

詳細而言,FormatType Property 的以下設定在 FormatMode Property 中提供以下 Pixel Format:

FormatType == GRAY: {Mono8, Mono10, Mono12, Mono14, Mono16, BayerGR8, BayerGR10, BayerGR12, BayerGR14, BayerGR16, BayerRG8, BayerRG10, BayerRG12, BayerRG14, BayerRG16, BayerGB8, BayerGB10, BayerGB12, BayerGB14, BayerGB16, BayerBG8, BayerBG10, BayerBG12, BayerBG14, BayerBG16}

FormatType == RGB: {RGB8, RGB10, RGB12, RGB14, RGB16}

FormatType == RGBA: {RGBA8, RGBA10, RGBA12, RGBA14, RGBA16}

FormatType == RAW: {Raw} Pixel format Raw has a fix bit width of 32Bit. The data are interpreted as received.

您可以決定要將此 Property 作為動態 Property 還是靜態 Property 使用。請在 Parameter Type 欄位中選取:

TxTriggerPacketMode
Type 動態寫入參數
Default CxpStandard
Range {CxpStandard, RisingEdgeOnly}

透過 TxTriggerPacketMode Property,您可以提高將擷取卡連接至相機的 CXP 連接線頻寬。 頻寬的提升是透過稍微修改相機觸發訊號解讀方式來實現的。

此功能僅能搭配支援此功能的特定相機使用。 如需詳細資訊,請聯絡您的當地經銷商或 Basler 支援部門。

TxTriggerPacketMode Property 允許兩種數值(CxpStandard、RisingEdgeOnly):

  • CxpStandard:建議的設定為 CxpStandard 數值。 如果設為 CxpStandard 數值,相機觸發會根據 CXP 規格運作。 (CXP 規格定義了擷取卡會透過 CXP 連接線向相機傳送兩個封包,以便觸發相機一次。)

  • RisingEdgeOnly:如果設為 RisingEdgeOnly 數值,擷取卡只會向相機傳送一個封包,以便觸發相機一次。 其結果是提高了頻寬並提升了行頻(line rate)。

TxTriggerEventCount
Type 動態讀取參數
Default 0
Range {0;2^20-1}

TxTriggerEventCount 參數表示已傳送至相機的觸發邊緣事件數量。

TxTriggerAcknowledgementCount
Type 動態讀取參數
Default 0
Range {0;2^20-1}

TxTriggerAcknowledgementCount 參數表示擷取卡已接收到由相機傳送的觸發確認封包數量 (回應先前傳送的觸發邊緣封包)。

TxTriggerWaveformViolation
Type 動態讀取參數
Default 0
Range {0,1}

如果相機操作員偵測到連接埠 TriggerI 上的兩個觸發邊緣之間的距離違反了最小邊緣頻率,相機操作員會將此參數設為 1。所有 microEnable 5 平臺上的最小邊緣頻率均為 550 ns (奈秒)。此參數會保留其值,直到被讀取為止。讀取後,該參數會更新其值。頻率控制會持續執行,且不受該參數的讀取狀態影響。

使用範例

以下範例顯示了 operator CXPQuadCamera 的使用方式: